//路由前置钩子，处理用户没有登入可以通过导航栏切换路径问题
import router from "@/router"
import storage from "./storage"
import store from "@/store"

router.beforeEach((to, from, next) => {
    let token = storage.get('qf-token')
    //to 目标路由对象
    //from 源路由对象
    //next 是个函数 调用之后可以理解为放行
    if (token) {
        //要判断是否有用户菜单
        if(!store.state.permission.userMenu.length){
            //如果没有菜单，发起请求
            store.dispatch('permission/FETCH_MENU_LIST')
            .then(() => {
                next({path: to.path,replace:true})
            })
        }else{
            //有菜单，直接放行
            next()
        }

    } else {
        //如果没有token
        //1.访问的是登入页
        if (to.path == '/login') {
            next()
        } else {
            //2.访问的不是登入页，强行调回登入页
            next({ path: "/login" })
        }
    }
})

export default router